//
//  BookDBManager.h
//  readNovels
//
//  Created by wulanzhou on 2017/2/27.
//  Copyright © 2017年 wulanzhou. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface SQLDBManager : NSObject

+ (SQLDBManager *)shareInstance;

#pragma mark -创建数据库

/**
 创建数据库(数据库存放在document/db/路径下)
 
 @param name 数据库名称
 @return 成功YES,否则为NO
 */
- (BOOL)createDBWithName:(NSString *)name;

/**
 创建数据库(数据库存放在document/db/路径下)

 @param name 数据库名称
 @param sqlArray 创建表的sql
 @return 成功YES,否则为NO
 */
- (BOOL)createDBWithName:(NSString *)name sqlTables:(NSArray *)sqlArray;

/**
 创建数据库

 @param path 数据库路径
 @param name 数据库名称
 @param sqlArray 创建表的sql
 @return 成功YES,否则为NO
 */
- (BOOL)createDBWithPath:(NSString *)path dbName:(NSString *)name sqlTables:(NSArray *)sqlArray;


#pragma mark -执行创建、删除、新增、更新数据库操作
/**
 执行创建、删除、新增、更新数据库操作

 @param sql sql语句
 @return 成功YES,否则为NO
 */
- (BOOL)update:(NSString *)sql, ...NS_REQUIRES_NIL_TERMINATION;

/**
 执行创建、删除、新增、更新数据库事物操作

 @param sqlArray sql语句
 @param args sql参数值
 @return 成功YES,否则为NO
 */
- (BOOL)transactionUpdate:(NSArray *)sqlArray arguments:(NSArray *)args;


#pragma mark -查询
/**
 查询

 @param sql 查询语句
 @return 返回查询集合
 */
- (NSArray *)query:(NSString *)sql, ...NS_REQUIRES_NIL_TERMINATION;

/**
 查询

 @param cls 转化的model
 @param sql 查询语句
 @return 返回查询集合
 */
- (NSArray *)queryModels:(Class)cls sql: (NSString *)sql, ...NS_REQUIRES_NIL_TERMINATION;

@end
